package org.ch02.hw.demo01;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

/**
 * @author ZJL
 * @date 2025-03-17
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception {
        // 一、练习分别使用四种方法获取类的 Class 对象，进行相关的操作

        // 第一种
//        Class<?> clazz = Class.forName("org.ch02.entity.Student");
//        Constructor<?> constructor = clazz.getConstructor();
//        Object object = constructor.newInstance();
//        Method hello = clazz.getMethod("hello");
//        hello.invoke(object);

        // 第二种
//        Class<Student> clazz = Student.class;
//        Constructor<Student> constructor = clazz.getConstructor();
//        Student student = constructor.newInstance();
//        Method method = clazz.getMethod("hello");
//        method.invoke(student);

        // 第三种
//        Student s1 = new Student();
//        Class<? extends Student> clazz = s1.getClass();
//        Constructor<? extends Student> constructor = clazz.getConstructor();
//        Student student = constructor.newInstance();
//        Method method = clazz.getMethod("hello");
//        method.invoke(student);

        // 第四种
//        Class<Float> type = Float.TYPE;
//        String name = type.getName();
//        System.out.println(name);
    }
}
